package com.sxj.corejava.code01_Java基础;

/**
 * @author 石小俊
 * 2024年07月08日 13:34
 */
public class Test03_数据类型 {

    public static void main(String[] args) {
        byte b = 1;
        byte b2 = 127;
        // byte b3 = 128;  // 报错,超出范围
        byte b4 = -1;
        byte b5 = -128;
        // byte b6 = -129; // 报错,超出范围

        short s1 = 32767;
        // short s2 = 32768;   // 报错,超出范围
        short s2 = -32768;
        // short s3 = -32769;  // 报错,超出范围

        int i1 = 123;
        // 在Java中,如果整数没有声明类型,默认为int类型
        System.out.println(123);

        // 下面不是long类型的直接定义,而是间接定义
        // 此处的1000是int类型
        // 此时是将int类型的数字1000通过自动类型转换转换成了long类型
        // 将转换后的数值赋值给变量l1
        long l1 = 1000;
        // 直接定义时,必须在数字的末尾添加L或者l
        long l2 = 1000L;
        long l3 = 1000l;

        float f1 = 3.14f;
        float f2 = 3.14F;
        float f3 = 3.14E5f;  // 3.14 * 10^5
        System.out.println(f3);

        // 在Java中,小数默认都是double类型
        double d1 = 3.14;

        // char表示通常意义下的一个字符
        char c1 = 'c';
        char c2 = '1';
        char c3 = '张';
        // 允许使用转移符,\n表示换行符
        char c4 = '\n';
        // 还允许使用unicode码
        char c5 = '\u0061';
        System.out.print(c5);
        System.out.print(c4);
        c5 = '\u0030';
        System.out.print(c5);

        boolean flag = true;
        System.out.println(flag);
        flag = false;
        System.out.println(flag);

        // String:字符串类型
        // 通过双引号括起来的值
        // 定义方式包含与基本数据类型类似的方式
        String name = "admin";
        String phone = "13812345678";
        String address = "江苏-南京";
        // 字符串之间通过+拼接表示字符串拼接
        System.out.println(name + phone);
        System.out.println("姓名:" + name + ",手机号:" + phone + ",地址:" + address);
        // 字符串可以与任意类型的值进行拼接
        System.out.println("字符串" + 1000 + 3.14 + true + 'c');
    }

}
